Руслан Ижбулатов [Thu, 14 Sep 2017 17:43:38 +0000 (17:43 +0000)]
GDK W32: Refuse to release mouse grab while in DnD mode
Handle WM_CANCELMODE and do nothing in response to it when DnD is
active. Otherwise pass it to DefWindowProc, which will call ReleaseCapture()
on our behalf.
This prevents us from losing mouse capture when alt-tabbing during DnD
(this includes the feature of Windows Explorer where dragging stuff over
a window button in the taskbar causes that window to receive focus, i.e.
keyboardless alt-tabbing).
https://bugzilla.gnome.org/show_bug.cgi?id=786509
Руслан Ижбулатов [Sat, 2 Sep 2017 15:25:36 +0000 (15:25 +0000)]
GDK W32: Update layered windows on opacity changes
Without this patch layered windows are only updated when they are moved
by the user or then their contents changes. This patch adds opacity
changes to the list of things that make GDK update a window. Without this
windows that don't redraw and are not moved by the used (DnD drag indicator
windows, for example) don't change their opacity.
https://bugzilla.gnome.org/show_bug.cgi?id=786509
Руслан Ижбулатов [Sat, 19 Aug 2017 12:06:27 +0000 (12:06 +0000)]
W32: Massive W32 DnD fix
Massive changes to OLE2 DnD protocol, which was completely broken before:
* Keep GdkDragContext and OLE2 objects separate (don't ref/unref them
together, don't necessarily create them together).
* Keep IDataObject formats in the object itself, not in a global variable.
* Fix getdata() to look up the request target in its format list, not in the
global hash table
* Create target GdkDragContext on each drag_enter, destroy it on drag_leave,
whereas IDropTarget is created when a window becomes a drag destination
and is re-used indefinitely.
* Query the source IDataObject for its supported types, cache them in the
target (!) context. This is how GTK+ works, honestly.
* Remember current_src_object when we initiate a drag, to be able
to detect later on that the data object is ours and use a
shortcut when querying targets
* Make sure GDK_DRAG_MOTION is only sent when something changes
* Support GTK drag cursors
* Ensure that exotic GTK clipboard formats are registered
(but try to avoid registering formats that can't be used between applications).
* Don't enumerate internal formats
* Ensure that DnD indicator window can't accept drags or receive any kind of input
(use WS_EX_TRANSPARENT).
* Remove unneeded indentation in _gdk_win32_dnd_do_dragdrop()
* Fix indentation in gdk_win32_drag_context_drop_finish()
* Remove obsolete comments in _gdk_win32_window_register_dnd()
* Check for DnD in progress when processing WM_KILLFOCUS, don't emit a grab
break event in such cases (this allows alt-tabbing while DnD is in progress,
though there may be lingering issues with focus after dropping...)
* Support Shell ID List -> text/uri-list conversion, now it's possible
to drop files (dragged from Explorer) on GTK+ applications
* Explicitly use RegisterClipboardFormatA() when we know that the string
is not in unicode. Otherwise explicitly use RegisterClipboardFormatW()
with a UTF8->UTF16 converted string
* Fix _gdk_win32_display_get_selection_owner() to correctly bail
when selection owner HWND is NULL (looking up GdkWindow for NULL
HWND always succeeds and returns the root window - not the intended
effect)
* More logging
* Send DROP_FINISHED event after DnD loop ends
* Send STATUS event on feedback
* Move GetKeyboardState() and related code into _gdk_win32_window_drag_begin(),
so that it's closer to the point where last_pt and start_pt are set
* Use & 0x80 to check for the key being pressed. Windows will set low-order bit
to 1 for all mouse buttons to indicate that they are toggled, so simply
checking for the value not being 0 is not enough anymore.
This is probably a new thing in modern W32 that didn't exist before
(OLE2 DnD code is old).
* Fixed (hopefully) and simplified HiDPI parts of the code.
Also adds managed DnD implementation for W32 GDK backend (for both
OLE2 and LOCAL protocols). Mostly a copy of the X11 backend code, but
there are some minor differences:
* doesn't use drag_window field in GdkDragContext,
uses the one in GdkWin32DragContext exclusively
* subtracts hotspot offset from the window coordinates when showing
the dragback animation
* tries to consistently support scaling and caches the scale
in the context
* Some keynav code is removed (places where grabbing/ungrabbing should
happen is marked with TODOs), and the rest is probably inert.
Also significantly changes the way selection (and clipboard) is handled
(as MSDN rightly notes, the handling for DnD and Clipboard
formats is virtually the same, so it makes sense to handle
both with the same code):
* Don't spam GDK_OWNER_CHANGE, send them only when owner
actually changes
* Open clipboard when our process becomes the clipboard owner
(we are doing it anyway, to empty the clipboard and *become* the owner),
and then don't close it until a scheduled selection request event
(with TARGETS target) is received. Process that event by announcing
all of our supported formats (by that time add_targets() should have
been called up the stack, thus the formats are known; just in case,
add_targets() will also schedule a selection request, if one isn't
scheduled already, so that late-coming formats can still be announced).
* Allow clipboard opening for selection_convert() to be delayed if it
fails initially.
* The last two points above should fix all the bugs about GTK+ rising
too much ruckus over OpenClipboard() failures, as owner change
*is allowed* to fail (though not all callers currently handle
that case), and selection_convert() is asynchronous to begin with.
Still, this is somewhat risky, as there's a possibility that the
code will work in unexpected ways and the clipboard will remain open.
There's now logging to track the clipboard being opened and closed,
and a number of failsafes that try to ensure that it isn't kept open
for no reason.
* Added copious notes on the way clipboard works on X11, Windows and GDK-W32,
also removed old comments in DnD implementation, replaced some of them
with the new ones
* A lot of crufty module-global variables are stuffed into a singleton
object, GdkWin32Selection. It's technically possible to make it a
sub-object of the Display object (the way Wayland backend does),
but since Display object on W32 is a singleton anyway... why bother?
* Fixed the send_change_events() a bit (was slightly broken in one of the
previous iterations)
* Ensure that there's no confusion between selection conversion (an artifact
term from X11) and selection transmutation (changing the data to be W32-compatible)
* Put all the transmutation code and format-target-matching code into gdkselection-win32.c,
now this code isn't spread across multiple files.
* Consequently, moved some code away from gdkproperty-win32.c and gdkdnd-win32.c
* Extensive format transmutation checks for OLE2 DnD and clipboard.
We now keep track of which format mappings are for transmutations,
and which aren't (for example, when formats are passed as-is, or when
a registered name is just an alias)
* Put transmutation code into separate functions
* Ensure that drop target keeps a format->target map for supported formats,
this is useful when selection_convert() is called, as it only receives a
single target and no hints on the format from which the data should
be transmuted into this target.
* Add clear_targets() on W32, to de called by GTK
* Use g_set_object() instead of g_ref_object() where it is allowed.
* Fix indentation (and convert tabs to spaces), remove unused variables
https://bugzilla.gnome.org/show_bug.cgi?id=786509
Руслан Ижбулатов [Tue, 22 Aug 2017 14:23:14 +0000 (14:23 +0000)]
GDK W32: Don't leak the atom name string
https://bugzilla.gnome.org/show_bug.cgi?id=786509
Руслан Ижбулатов [Tue, 15 Aug 2017 13:12:43 +0000 (13:12 +0000)]
GDK W32: Fix a typo in OLE2 DnD code
https://bugzilla.gnome.org/show_bug.cgi?id=786509
Руслан Ижбулатов [Tue, 15 Aug 2017 13:07:01 +0000 (13:07 +0000)]
Only register application/x-rootwindow-drop on X11
application/x-rootwindow-drop is not useful anywhere else,
so put it under #ifdef GDK_WINDOWING_X11
On W32 this prevents toplevels from automatically becoming valid
drop targets with a useless drop type.
https://bugzilla.gnome.org/show_bug.cgi?id=786509
Руслан Ижбулатов [Fri, 11 Aug 2017 07:00:41 +0000 (07:00 +0000)]
GDK W32: More flexible modal operation mode
Instead of using a boolean to indicate a modal operation being in progress,
use a set of flags, and allow these to be set and unset independently.
Specifically, this allows WM_CAPTURECHANGED handler to only act when a drag-move or
drag-resize modal operation is in progress, and ignore DND (which can also cause
WM_CAPTURECHANGED to be posted). This avoids a crash due to assertion failure when
OLE2 DND code tries to end a modal operation that was already ended by the WM_CAPTURECHANGED
handler.
https://bugzilla.gnome.org/show_bug.cgi?id=786121
Daniel Boles [Thu, 23 Nov 2017 17:17:08 +0000 (17:17 +0000)]
Be more specific in ::insert-emoji Since tag
I had been unsure whether to include the minor version, but
:show-emoji-icon already did, so do the same here to match.
Руслан Ижбулатов [Thu, 23 Nov 2017 07:15:28 +0000 (07:15 +0000)]
GDK W32: fix monitor pruning code
Decrement the counter for each removed element, otherwise we skip
one element every time we remove one. Also, no need for continue here.
Daniel Boles [Wed, 22 Nov 2017 22:35:25 +0000 (22:35 +0000)]
Add Since to ::insert-emoji, and some trivialities
Document when these keybinding signals were added.
Matthias Clasen [Wed, 22 Nov 2017 21:47:43 +0000 (16:47 -0500)]
text view: Support the Emoji chooser
Similar to GtkEntry, add an "Insert Emoji" context
menu item, and add the same keybindings. We don't
add the icon here, since it is not clear where it
would go.
https://bugzilla.gnome.org/show_bug.cgi?id=790029
Matthias Clasen [Wed, 22 Nov 2017 21:46:49 +0000 (16:46 -0500)]
Fix indentation mishap
Daniel Boles [Wed, 22 Nov 2017 20:27:26 +0000 (20:27 +0000)]
SpinButton: Explain meaning of nullable Adjustment
configure() marked the @adj argument as (allow-none) but did not explain
what passing NULL would do. Fix that, and move it to (nullable) as well.
Daniel Boles [Wed, 22 Nov 2017 19:19:36 +0000 (19:19 +0000)]
doc: Replace uses of #NULL with %NULL
Daniel Boles [Wed, 22 Nov 2017 18:57:48 +0000 (18:57 +0000)]
CellRendererPixbuf: Improve property docs
Add Since annotations for the stock-* properties.
Add a doc comment for :stock-size in order to link to GtkIconSize.
Document :stock-detail as deprecated. It does nothing & is gone in GTK+4
Daniel Boles [Tue, 21 Nov 2017 10:52:35 +0000 (10:52 +0000)]
doc: TextLayout: Add missing (out) annotations
and move from (allow-none) to (optional)
Matthias Clasen [Mon, 20 Nov 2017 03:40:07 +0000 (22:40 -0500)]
emoji chooser: break out a helper function
This is just a small cleanup.
Matthias Clasen [Sun, 19 Nov 2017 03:44:12 +0000 (22:44 -0500)]
entry: Add a key binding for the emoji chooser
Make Ctrl-. and Ctrl-; bring up the emoji chooser.
https://bugzilla.gnome.org/show_bug.cgi?id=789160
Matthias Clasen [Sun, 19 Nov 2017 23:03:07 +0000 (18:03 -0500)]
emoji chooser: Make menu key work as expected
Whenever we have a right-click action, we should make
the menu key work as a keyboard-accessible alternative.
Matthias Clasen [Sun, 19 Nov 2017 21:18:28 +0000 (16:18 -0500)]
emoji chooser: handle right-click
Whereever we handle long-press for touch, it makes sense to handle
right-click as a faster alternative for mouse-based interaction.
This commit makes right-click work to bring up the variation
selector for Emojis.
Matthias Clasen [Sun, 19 Nov 2017 13:29:37 +0000 (08:29 -0500)]
Trivial cleanup
Better to use G_SOURCE_REMOVE than FALSE, for clarity.
Matthias Clasen [Sun, 19 Nov 2017 13:28:35 +0000 (08:28 -0500)]
emoji chooser: Don't leak gestures
We were not freeing these gestures as we should.
Benjamin Otte [Sun, 5 Nov 2017 15:12:35 +0000 (16:12 +0100)]
emojichooser: animate the adjustment
... instead of doing a dance with the scrolled window to get it to scroll
the adjustment.
Bastien Nocera [Wed, 22 Nov 2017 14:23:52 +0000 (15:23 +0100)]
frame-clock: Fix typo in API documentation
Daniel Mustieles [Mon, 20 Nov 2017 08:39:00 +0000 (08:39 +0000)]
Update Spanish translation
Daniel Mustieles [Mon, 20 Nov 2017 08:38:35 +0000 (08:38 +0000)]
Update Spanish translation
Muhammet Kara [Sun, 19 Nov 2017 20:13:03 +0000 (20:13 +0000)]
Update Turkish translation
Milo Casagrande [Fri, 17 Nov 2017 13:33:01 +0000 (13:33 +0000)]
Update Italian translation
Milo Casagrande [Fri, 17 Nov 2017 10:51:13 +0000 (10:51 +0000)]
Update Italian translation
Milo Casagrande [Fri, 17 Nov 2017 10:49:34 +0000 (10:49 +0000)]
Update Italian translation
Matthias Clasen [Mon, 13 Nov 2017 17:12:52 +0000 (12:12 -0500)]
icontheme: Add a trailing / when enumerating resources
This avoids extra string copies in GResource.
Matthias Clasen [Mon, 13 Nov 2017 12:35:18 +0000 (07:35 -0500)]
application: Append a / to the icon resource path
g_resources_enumerate_children expects the path to end
in a '/' (even though thats not stated in the docs), and
will copy it if that isn't the case. Avoid the copy
by putting a '/' there to begin with.
Matthias Clasen [Mon, 13 Nov 2017 12:33:35 +0000 (07:33 -0500)]
icontheme: Append a / to the resource path
g_resources_enumerate_children expects the path to end
in a '/' (even though thats not stated in the docs), and
will copy it if that isn't the case. Avoid the copy
by putting a '/' there to begin with.
Benjamin Otte [Mon, 13 Nov 2017 16:06:34 +0000 (17:06 +0100)]
gdk: Fix GDK_ALL_EVENTS_MASK
This mask was forgotten to update when the last 2 event masks were
added, probably because it looks like it's already maxed.
Carlos Soriano [Mon, 30 Oct 2017 20:47:07 +0000 (21:47 +0100)]
gtkplacessidebar: Fix new tab/window handling for cloud accounts
It wasn't taking into account whether the sidebar had support for them
or not, resulting in a file chooser with open in new tab/window menu
items when it's not supported.
To fix it, do as with the other menus and check for the availability of
new tab/window flags.
https://bugzilla.gnome.org/show_bug.cgi?id=786123
Carlos Soriano [Mon, 30 Oct 2017 20:38:41 +0000 (21:38 +0100)]
gtkplacessidebar: Adapt to libcloudproviders 0.2.0
And a few improvements on the way.
https://bugzilla.gnome.org/show_bug.cgi?id=786123
Christian Hergert [Mon, 13 Nov 2017 03:34:46 +0000 (19:34 -0800)]
css: avoid copying resource data
To avoid copying data from gresources to the heap, we can use
the newly added gtk_file_load_bytes(). That function will check
for resource:// URIs and access their internal data directly.
Other URI schemes will read the contents into memory and return
a GBytes as normal.
https://bugzilla.gnome.org/show_bug.cgi?id=790270
Christian Hergert [Mon, 13 Nov 2017 03:26:54 +0000 (19:26 -0800)]
utils: add gtk_file_load_bytes() helper
This helper will load GBytes for a GFile, but try to reuse the
embedded data for a gresource to reduce the chances of copying
data to the heap.
https://bugzilla.gnome.org/show_bug.cgi?id=790270
Benjamin Otte [Mon, 13 Nov 2017 02:51:53 +0000 (03:51 +0100)]
a11y: Handle a treeview with no columns
Code was spewing criticals to stderr because of nonexisting columns. So
check that there's actually an existing column first.
Benjamin Otte [Sun, 12 Nov 2017 05:19:00 +0000 (06:19 +0100)]
progresstracker: Don't hand out NaN
When the duration is set to 0, clamp it to 1us. This way we're almost
correct: We should really instantly finish, but we don't. But we do
respect the delay.
Doing this properly would require some refactoring of how the progress
tracker actually maintains progress, and this is just a quick fix.
Fabio Tomat [Fri, 10 Nov 2017 15:48:06 +0000 (15:48 +0000)]
Update Friulian translation
Kjartan Maraas [Thu, 9 Nov 2017 19:09:40 +0000 (20:09 +0100)]
Updated Norwegian bokmål translation.
Daniel Boles [Thu, 9 Nov 2017 09:44:49 +0000 (09:44 +0000)]
Window: Document get_icon() return as nullable
Daniel Boles [Wed, 8 Nov 2017 06:48:17 +0000 (06:48 +0000)]
CssProvider: Use consistent theme name placeholder
commit
475d916eb92c0106d09525bcca938f05fd6a81b5 added various paths that
use theme-name for this, but the existing path already used THEME, with
a subsequent description referring to the latter. So use that everywhere
Matthias Clasen [Tue, 7 Nov 2017 19:52:24 +0000 (14:52 -0500)]
3.22.26
Dušan Kazik [Tue, 7 Nov 2017 18:24:11 +0000 (18:24 +0000)]
Update Slovak translation
Dušan Kazik [Tue, 7 Nov 2017 18:21:41 +0000 (18:21 +0000)]
Update Slovak translation
Marek Cernocky [Mon, 6 Nov 2017 20:03:47 +0000 (21:03 +0100)]
Updated Czech translation
Rafael Fontenelle [Mon, 6 Nov 2017 18:19:31 +0000 (18:19 +0000)]
Update Brazilian Portuguese translation
Rafael Fontenelle [Mon, 6 Nov 2017 17:53:03 +0000 (17:53 +0000)]
Update Brazilian Portuguese translation
Hannie Dumoleyn [Mon, 6 Nov 2017 16:20:55 +0000 (16:20 +0000)]
Update Dutch translation
Hannie Dumoleyn [Mon, 6 Nov 2017 16:17:20 +0000 (16:17 +0000)]
Update Dutch translation
Mario Blättermann [Mon, 6 Nov 2017 08:35:14 +0000 (08:35 +0000)]
Update German translation
Mario Blättermann [Mon, 6 Nov 2017 08:32:35 +0000 (08:32 +0000)]
Update German translation
Kjartan Maraas [Mon, 6 Nov 2017 08:09:53 +0000 (09:09 +0100)]
Updated Norwegian bokmål translation.
Anders Jonsson [Sun, 5 Nov 2017 21:23:19 +0000 (21:23 +0000)]
Update Swedish translation
Anders Jonsson [Sun, 5 Nov 2017 21:19:06 +0000 (21:19 +0000)]
Update Swedish translation
Piotr Drąg [Sun, 5 Nov 2017 20:47:10 +0000 (21:47 +0100)]
Update Polish translation
Piotr Drąg [Sun, 5 Nov 2017 20:16:59 +0000 (21:16 +0100)]
placessidebar: correct quotation marks in a new string
Alexandru Pandelea [Thu, 20 Jul 2017 15:29:42 +0000 (16:29 +0100)]
placessidebar: add starred location item
Add an item for showing all files marked as favorite. This item will
open all files that have the nao:predefined-tag-favorite tag
https://bugzilla.gnome.org/show_bug.cgi?id=785176
Chun-wei Fan [Mon, 30 Oct 2017 07:00:28 +0000 (15:00 +0800)]
gdk/win32: Fix Win32 GL Context switching
Since on Windows we need to use a good amount of temporary GL contexts,
we need to switch back to the original GL contexts we were using when
we are done with the temporary GL contexts, otherwise multi-GL windows
will cause confusions causing display artifacts and crashes.
Also, use the GdkWin32GLContext::gl_hdc consistently throughout
the code and remove the GdkWin32Display::gl_hdc as Lukas K pointed out
that GdkWin32Display::gl_hdc becomes out-of-date and so the HDC that the
GL context is bound to becomes incorrect in sceanarios using multiple
windows with GtkGLArea/GdkGLArea items (which would cause the artifacts in
programs that use multiple windows with GtkGLArea/GdkGLArea items, and it
turns out that GdkWin32Display::gl_hdc is actually not necessary to help
keep track of the HDCs we use for our GL contexts.
Partly based on patch from Lukas K <lu@0x83.eu>
https://bugzilla.gnome.org/show_bug.cgi?id=789213
Khaled Hosny [Fri, 3 Nov 2017 09:46:43 +0000 (11:46 +0200)]
Update Arabic translation
Daniel Boles [Tue, 31 Oct 2017 19:43:52 +0000 (19:43 +0000)]
Adwaita: Fix Entry:has-frame if backdrop/disabled
by explicitly including these in the selector removing the border, to
avoid other rules on these pseudoclasses overriding the .flat class.
https://bugzilla.gnome.org/show_bug.cgi?id=789733
Daniel Boles [Tue, 31 Oct 2017 19:57:45 +0000 (19:57 +0000)]
HighContrast: Fix GtkEntry:has-frame not working
• Remove the box-shadow at the top when the entry is in the foreground
• Bump precedence so that :disabled entries do not have .flat overridden
• Also add :backdrop to stop HCInverse getting a lighter BG in :backdrop
https://bugzilla.gnome.org/show_bug.cgi?id=789733
Daniel Boles [Thu, 12 Oct 2017 20:09:58 +0000 (21:09 +0100)]
Inspector: better default split of CSS nodes/props
Move the default pos of the Paned handle to 400px from the left, i.e.
50% of the default width of the window. The previous position at 300px
from left meant the node treeview was too narrow & could easily result
in the (useful) State column not being visible in the case of many
apps. The properties pane doesn't need to be as big as it was anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=788898
Julian Sparber [Tue, 31 Oct 2017 01:29:59 +0000 (02:29 +0100)]
AboutDialog: Fix accepting GTK_LICENSE_AGPL_3_0
Add the new GTK_LICENSE_AGPL_3_0 to the allowed enum range checked in
gtk_about_dialog_set_license_type(), so this value is not rejected.
https://bugzilla.gnome.org/show_bug.cgi?id=789678
Julian Sparber [Wed, 18 Oct 2017 11:00:41 +0000 (13:00 +0200)]
icon-browser: Centre Copy button in dialog again
This patch moves the "Copy to Clipboard" button into the same container
as the description label, to centre the button regardless of the number
of icons shown in the grid.
https://bugzilla.gnome.org/show_bug.cgi?id=789134
Daniel Boles [Tue, 31 Oct 2017 18:27:34 +0000 (18:27 +0000)]
gdkmonitor: Fix typo
Daniel Boles [Mon, 23 Oct 2017 08:20:23 +0000 (09:20 +0100)]
SpinButton: Fix typo
Lukas K [Sat, 28 Oct 2017 22:07:34 +0000 (00:07 +0200)]
make GDK_DEBUG=opengl work on win32
Chun-wei Fan [Thu, 31 Aug 2017 10:43:07 +0000 (18:43 +0800)]
input/IME: Defer the emit of the "commit" signal
On Windows, when IME is used, each keystroke results in the
WM_IME_COMPOSITION event being sent first. This means that in our case
when one decides on to accept the input that is in the preedit buffer,
we first get from Windows the WM_IME_COMPOSITION event
(where we emit the commit signal), followed by the WM_IME_ENDCOMPOSITION
event (where we emit the pair of preedit-changed and preedit-end
signals).
Since commit
f11f989 (GtkEntry: Remove recompute idle), we do the input
recomputation directly, this will cause a pair of "Pango-WARNING:
Assertion failed: (index >= 0 && index <= layout->length)" being shown,
as gtkentry.c's priv->preedit_length and priv->preedit_cursor was unable
to be reset to 0 in time as a result of the recomputation triggered by
the commit being done before the reset of priv->preedit_length and
priv->preedit_cursor (which are no longer valid as we essentially say
that we are done with the preedit buffer).
As we could only acquire the final string that was entered in this
preedit session when we handle the WM_IME_COMPOSITION event, fix this by
saving up the final string we acquire from Windows IME in UTF-8 when we
handle the WM_IME_COMPOSITION event from Windows, and emit the commit
signal with that string after we emit the preedit-changed and
preedit-end signals when we handle the WM_IME_ENDCOMPOSITION event from
Windows, which comes afterwards.
Also fix the formatting of the code around the parts of the files that
was changed.
https://bugzilla.gnome.org/show_bug.cgi?id=787142
Simon McVittie [Sun, 29 Oct 2017 17:50:13 +0000 (17:50 +0000)]
wayland: Distribute protocol/server-decoration.xml in tarballs
Otherwise, builds that include the Wayland backend fail.
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=789630
Signed-off-by: Simon McVittie <smcv@debian.org>
Reviewed-by: Emmanuele Bassi <ebassi@gnome.org>
Matthias Clasen [Sun, 29 Oct 2017 12:47:41 +0000 (08:47 -0400)]
3.22.25
Matthias Clasen [Sat, 28 Oct 2017 14:22:30 +0000 (10:22 -0400)]
Revert "gdkscreen-x11: Enable RandR on VirtualBox"
This reverts commit
f2ba6ca47322a17b37fb92662fc9552b4f106f10.
This change was causing problems with several X servers,
see https://bugzilla.gnome.org/show_bug.cgi?id=780101
Andrea Azzarone [Thu, 19 Oct 2017 08:36:50 +0000 (08:36 +0000)]
widget: Typecheck before deref in translate_coords
https://bugzilla.gnome.org/show_bug.cgi?id=771279
Federico Mena Quintero [Fri, 27 Oct 2017 22:04:02 +0000 (17:04 -0500)]
GtkPathBar: Centralize handling of outstanding cancellables
The path bar would crash if we disposed it before all pending I/O
operations had finished. Now we remember all the outstanding
operations directly in the GtkPathBarPrivate, and deal with them
consistently.
Matthias Clasen [Fri, 27 Oct 2017 20:12:28 +0000 (16:12 -0400)]
GdkMonitor: Use 1 as scale fallback value
The same value we use in gtk_widget_get_scale_factor.
Olivier Fourdan [Tue, 27 Jun 2017 09:12:57 +0000 (11:12 +0200)]
wayland: scale down reported monitor geometry
According to the documentation, gdk_monitor_get_geometry() reports the
monitor geometry in ”application pixels”, not in ”device pixels”,
meaning that the actual device resolution needs to be scaled down by the
scale factor of the output.
x11 backend does that downscaling, whereas Wayland backend did not,
causing a discrepancy depending on the backend used.
https://bugzilla.gnome.org/show_bug.cgi?id=783995
Simon McVittie [Thu, 26 Oct 2017 15:02:07 +0000 (16:02 +0100)]
GtkWindow: Set tiled class on windows that have any tiled edge
This has no practical effect on Adwaita, but might fix some
third-party themes that were broken by GTK+ 3.22.23.
Signed-off-by: Simon McVittie <smcv@debian.org>
https://bugzilla.gnome.org/show_bug.cgi?id=789357
Simon McVittie [Thu, 26 Oct 2017 14:57:29 +0000 (15:57 +0100)]
GtkHeaderBar: Reconsider buttons if any tiling state changes
Looking at the 1-bit "tiled or not?" state is not necessarily
enough.
Signed-off-by: Simon McVittie <smcv@debian.org>
https://bugzilla.gnome.org/show_bug.cgi?id=789357
Simon McVittie [Thu, 26 Oct 2017 14:51:51 +0000 (15:51 +0100)]
Set GDK_WINDOW_STATE_TILED if any edge is tiled
This state flag is used in several places in GTK+, for example to
ignore RESIZE_INC hints if tiled. Setting it is also necessary for
backwards compatibility with applications that changed their behaviour
when tiled, such as GNOME Terminal and its MATE fork.
Signed-off-by: Simon McVittie <smcv@debian.org>
https://bugzilla.gnome.org/show_bug.cgi?id=789357
Drew DeVault [Sat, 29 Apr 2017 00:35:51 +0000 (20:35 -0400)]
Wayland: Implement KDE's SSD protocol
If the compositor prefers server-side decorations and the client doesn't
customize the title bar, we disable client-side decorations and let the
compositor know. Otherwise, we continue to use client-side decorations.
Signed-off-by: Drew DeVault <sir@cmpwn.com>
https://bugzilla.gnome.org/show_bug.cgi?id=781909
Olivier Fourdan [Wed, 21 Jun 2017 13:02:05 +0000 (15:02 +0200)]
wayland: Do not constrain saved window size
Under Wayland, an xdg_surface.configure with size 0x0 means it's up to
the client to set its size.
When transitioning from maximized state to un-maximized, the Wayland
compositor will send such an 0x0 configure so that the client can
restore its original size.
However, the original size was already constrained, so re-applying
size constrains can lead to a smaller size when using size increments.
Avoid this caveat by not applying size constrains when we are restoring
the original size.
https://bugzilla.gnome.org/show_bug.cgi?id=777072
Florian Müllner [Sun, 22 Oct 2017 22:18:19 +0000 (00:18 +0200)]
appchooserwidget: Don't limit application list unconditionally
As documented, GtkAppChooser is "typically [used] for the purpose of
opening a file". However given that applications that support neither
opening files nor URLs are filtered out, the chooser is not actual
useful for any other (atypical) usage. Change that by only applying
the filtering if a content-type was set, and use the full unfiltered
list otherwise.
https://bugzilla.gnome.org/show_bug.cgi?id=789327
Christian Persch [Wed, 11 Oct 2017 18:43:19 +0000 (20:43 +0200)]
actionable: Allow all detailed action name formats
Use g_action_parse_detailed_name() to enable use of this API
for actions with non-string parameter.
https://bugzilla.gnome.org/show_bug.cgi?id=788841
Matthias Clasen [Wed, 12 Apr 2017 17:56:49 +0000 (13:56 -0400)]
wayland: Don't spew warnings for blank cursors
We were unnecessarily spewing warnings when blank cursors
were getting a new scale set. Standardize on "none" as the
name for blank cursors, and avoid the warning.
https://bugzilla.gnome.org/show_bug.cgi?id=775217
Andrea Azzarone [Wed, 25 Oct 2017 13:34:47 +0000 (09:34 -0400)]
gdk: Clear GL context when window is withdrawn
Some clients (e.g. gnome-online-accounts) quickly unmap and map
a window. With some backends the backend surface will be replaced
causing the application to crash because the GL context is still
using the old surface. Clearing the GL context when a window is
withdrawn fixes this.
https://bugzilla.gnome.org/show_bug.cgi?id=789141
Chun-wei Fan [Fri, 20 Oct 2017 09:01:30 +0000 (17:01 +0800)]
Visual Studio builds: Improve binary security
Ensure that the /DYNAMICBASE linker option (which is actually the
default) is enabled for all of our Visual Studio project builds, as the
gtk3-demo projects inadvertly disabled it.
Also, for x64 builds on MSVC 2012 or later, enable /HIGHENTROPYVA to
enhance the security of our binaries as well.
Pointed out by Ignacio Casal Quinteiro.
Kukuh Syafaat [Fri, 20 Oct 2017 05:53:07 +0000 (05:53 +0000)]
Update Indonesian translation
Michael Catanzaro [Fri, 20 Oct 2017 00:47:30 +0000 (19:47 -0500)]
Revert "gdk/wayland: Avoid idempotent wl_subsurface.set_position calls"
This reverts commit
8aa6d59b7a214ba03a83bcae8c43712f8e402927.
This caused a regression in totem that still needs to be investigated.
https://bugzilla.gnome.org/show_bug.cgi?id=784314
Carlos Garnacho [Thu, 19 Oct 2017 11:55:34 +0000 (13:55 +0200)]
gtkwidget: Emulate motion before button press on fallback touch handler
The code has been shuffled so GDK_TOUCH_BEGIN results in a
GDK_MOTION_NOTIFY to the new position and a GDK_BUTTON_PRESS on that same
place. This makes pointer emulation consistent with what X11 does. Even
though button presses have x/y arguments, there's code out there relying
on getting prior motion events.
Debarshi Ray [Wed, 18 Oct 2017 13:35:19 +0000 (15:35 +0200)]
GtkGestureZoom: Don't leak the list of sequences
https://bugzilla.gnome.org/show_bug.cgi?id=789149
Timm Bäder [Tue, 17 Oct 2017 06:49:06 +0000 (08:49 +0200)]
emojichooser: Plug memory leak
Julian Sparber [Mon, 7 Aug 2017 21:33:42 +0000 (23:33 +0200)]
icon-browser: Add scalable icons to icon detail modal window
When making mockups for GNOME apps in Inkscape, looking for symbolic
icons is a common task. Searching for icons in the file system is clumsy,
and icon-browser provides a much better interface for finding them.
However, currently there is no way to insert the symbolic icons as SVG
directly from icon-browser, so right now it is only useful for finding
the name.
This patch adds a sixth column to the modal window that appears when
clicking a symbolic icon. The icon in this column is labeled "scalable",
and dragging it onto another window results in the vector icon URI being
inserted.
This enables a much simpler workflow when designing with symbolic icons.
https://bugzilla.gnome.org/show_bug.cgi?id=778930
Carlos Garnacho [Thu, 5 Oct 2017 23:06:03 +0000 (01:06 +0200)]
gdk/wayland: Avoid idempotent wl_subsurface.set_position calls
These may not result on wl_surface.frame callbacks, yet we do trigger
a frame clock tick that would get stuck on the lack of such callback.
https://bugzilla.gnome.org/show_bug.cgi?id=784314
Aurimas Černius [Sun, 15 Oct 2017 18:24:22 +0000 (21:24 +0300)]
Updated Lithuanian translation
Daniel Boles [Sun, 15 Oct 2017 11:55:22 +0000 (12:55 +0100)]
a11y/entry: Fixups for previous commit
We still declare all variables at the start of the block.
Also, we can use the fast private _gtk_widget_get_allocation().
https://bugzilla.gnome.org/show_bug.cgi?id=784509
Samuel Thibault [Thu, 5 Oct 2017 15:49:00 +0000 (15:49 +0000)]
a11y/entry: Fix text coords not adjusted for alloc
What is missing is the "allocation" part of x/y coordinates. Since
gtk_entry_realize doesn't call gtk_widget_set_window(priv->text_area),
the coordinates returned by gdk_window_get_origin don't include it.
This patch fixes this.
https://bugzilla.gnome.org/show_bug.cgi?id=784509
Timm Bäder [Sun, 8 Oct 2017 18:15:39 +0000 (20:15 +0200)]
scalebutton: Fix comparison for empty icon list
https://bugzilla.gnome.org/show_bug.cgi?id=786220
Daniel Boles [Sat, 14 Oct 2017 17:45:20 +0000 (18:45 +0100)]
Range: Fix inverted horizontal scroll wheel events
Bug 737175 aimed to ensure that scrolling up on a horizontal range would
result in its value increasing, as that’s what users intuitively expect.
However, its commit
416c370da1d2eff2458e4a0c5b8e504cd8061559 meant that,
if the event gives scroll deltas, we inverted our delta unconditionally.
So it broke horizontal scrolling: scrolling left moved the slider right…
We must only invert if using dy as delta. dx already has the right sign,
so inverting it was wrong.
https://bugzilla.gnome.org/show_bug.cgi?id=788905